Many of today's software application programs are distributed in different versions that support various different languages. For example, Microsoft Corporation's WORD™ word processing application program is used throughout the world, and is distributed in versions that support one of a myriad of different languages, including European languages, Baltic languages, Arabic languages, Cyrillic languages, and Asian languages, as well as various dialects.
In order to enable a software application to be usable by those who understand different languages, it is necessary to provide localized support for each such language. As used herein, the term “localize” means to provide a language-specific object, such as an element in a document or portion thereof, a graphic, a resource, etc., that can be locally accessed by the application program. Thus, the object will often be stored on a local hard drive of a user's computer. For example, a set of localized objects are typically installed on a user's computer during installation of an application program and correspond to a language selected by the user during the installation process.
The simplest way to localize objects is to provide a language-specific version of each object. However, this approach consumes a great deal of storage on the media used for distribution of applications and is undesirable from a manufacturing standpoint when many objects need to be localized, for many different languages. For this reason, software companies generally prefer to produce as few versions of each application program as possible, such as a U.S. version and an International version. However, if the International version is designed to support ten different languages (other than U.S. English), and a separate set of localized objects must be provided for each language, the storage requirement on the distribution media for the localized objects in the International version will be approximately ten times as much as that required for the objects in the U.S. version.
An important aspect of most application programs is the user interface (UI). It is through the user interfaces that various features provided by a program are selectively accessed, typically through a set of pull-down menus and dialog boxes. In order to provide support for a particular language, the options displayed in the pull-down menus and dialog boxes must be presented in that language. Traditionally, the solution to this problem has been to provide code for a different version of the UI, for each supported language.
Rather than provide a set of separate localized resources, such as a UI for each language, it is preferable to enable localization of an application for different languages in a way that reduces unnecessary duplication of significant portions of those resources. Such a scheme is provided by the Microsoft Office International Interface, which enables an application program's developers to code a single set of menus and dialog boxes that reference localized strings containing language-specific data (e.g., text). For instance, if a user selects Russian as the UI language, the set of pull-down menus and dialog boxes for the program will include various options labeled in Russian, while if the user selects Japanese to be the UI language, the same options will be labeled in Japanese.
Recently, there has been a substantial increase in application program features that enable users to access network resources, such as various data and applications available on the Internet. In order to facilitate these added features, the UI's in these applications typically include hypertext markup language (HTML) pages. The use of such HTML pages in the UI presents a similar problem with respect to supporting different languages, i.e., a separate set of HTML pages generally has to be supplied for the UI in each language that is supported by an application. Optionally, localization of the HTML pages for the UI may be provided through use of a plurality of Active Server pages that access language-specific strings stored in a database. Neither of these options is an ideal solution to the problem. The first option requires a large amount of storage space on distribution media, often forcing software producers to limit the extent of language localization provided for their applications, and the second option requires the use of extra resources, such as Active Server support files, to be supplied by the software producer and installed on a user's computer (if not already installed). Furthermore, the Microsoft Office International Interface does not provide an optimal solution for localizing HTML pages. Accordingly, it would be desirable to provide a method for localizing HTML pages so as to minimize storage requirements and avoid the use of Active Server pages.